/**
 * ReportGear(2011)
 */
package com.reportgear.core.data;

import java.util.List;

import com.reportgear.core.data.model.SalaryDataObject;

/**
 * 薪酬数据查询代理
 * 
 * @version 1.0 2011-5-28
 * @author <a herf="lexloo@gmail.com">lexloo</a>
 * @since Report 1.0
 */
public interface SalaryDataQueryDelegate {
    /**
     * 获取发放表内容
     * 
     * @param payId 发放表Id
     * @return 发放表内容
     */
    public String getPaymentData(int payId);

    /**
     * 组织机构
     */
    public List<SalaryDataObject> getOrgs();

    /**
     * 成本中心
     */
    public List<SalaryDataObject> getCenters();

    /**
     * 薪酬体系
     */
    public List<SalaryDataObject> getSalaryScheme();

    /**
     * 薪酬项目
     * 
     * @param schemeId 薪酬体系Id
     */
    public List<SalaryDataObject> getSalaryItem(int schemeId);

    /**
     * 读取指定模板
     * 
     * @param reportId 模板Id
     * @return 模板内容
     */
    public String loadTemplate(int reportId);

    /**
     * 模板列表读取服务
     * 
     * @return 模板列表
     */
    public List<SalaryDataObject> loadTemplateList();

    /**
     * 模板存储
     * 
     * @param template 模型内容
     * @param id 模板Id
     * @param name 模板名称
     * @return 模板返回Id结果
     */
    public int saveTemplate(String template, int id, int SystemId, String name);

    /**
     * 删除指定模板
     * 
     * @param id 模板Id
     * @return 删除结果
     */
    public boolean deleteTemplate(int id);

    /**
     * 发放表基本信息，发放表描述
     * 
     * @param payId 发放表Id
     * @return 发放表信息
     */
    public SalaryDataObject getPayBase(int payId);

    /**
     * 获取排序信息
     * 
     * @param key 键值
     * @return 排序信息列表
     */
    public List<SalaryDataObject> getOrderInfo(String key);

    /**
     * 保存排序信息
     * 
     * @param key 键值
     * @param content 信息列表
     */
    public int saveOrderInfo(String key, String content);

    /**
     * @return 最近发放表信息
     */
    public List<SalaryDataObject> getLastPayments();

    /**
     * @return Session变量
     */
    public SalaryDataObject getSessionVar();

    /**
     * 获取简历报表模板模型列表
     * 
     * @return 简历简历报表模板模型列表
     */
    public List<SalaryDataObject> loadResumeTemplateModelList();

    /**
     * 获取简历报表模板模型列表,可以获取所有公共模板
     * 
     * @return 简历简历报表模板模型列表
     */
    public List<SalaryDataObject> loadResumeTemplateModelList1();

    /**
     * 获取指定简历报表模板模型
     * 
     * @param id 模型Id
     * @return 简历报表模板模型
     */
    public String loadResumeTemplateModel(int id);

    /**
     * 存储简历报表模板模型
     * 
     * @param template 模板
     * @param id 主键
     * @param name 模板名称
     * @param isglobal 是否全局
     * 
     * @return 对象主键Id
     */
    public int saveResumeTemplateModel(String template, int id, String name, int isglobal);

    /**
     * 删除简历报表模板模型
     * 
     * @param id 模板Id
     * @return 删除结果
     */
    public boolean deleteResumeTemplateModel(int id);

    /**
     * 获取人员简历基本内容
     * 
     * @param id 主键Id
     * @return 人员简历基本内容
     */
    public SalaryDataObject getResumeBase(int id);

    /**
     * 获取人员简历Parts
     * 
     * @param id 员工Id
     * @param part 内容部分
     * @return 人员简历部分
     */
    public List<SalaryDataObject> getResumeParts(int id, String part);

    /**
     * 获取人员照片数据
     * 
     * @param photoId 照片Id
     * @return 照片信息
     */
    public String getPhotoData(String photoId);

    /**
     * 设计简历模板设计信息
     * 
     * @return 设计信息
     */
    public String loadResumeDesignInfo();
}
